layui.use(['form', 'layedit','upload'], function(){
        var form = layui.form,layer = layui.layer,upload = layui.upload;
        var editor = editormd("blog-editor", {
            width   : "90%",
            height  : "350px",
            syncScrolling : "single",
            path    : "/editormd/lib/",
            // 工具栏添加一个自定义方法
            toolbarIcons: function() {
                // 给工具栏full模式添加一个自定义方法
                return editormd.toolbarModes.full.concat(["customIcon"]);
            },
            // 自定义方法的图标 指定一个FontAawsome的图标类
            toolbarIconsClass: {
                customIcon: "fa-paste"
            },
            // 没有图标可以插入内容，字符串或HTML标签
            toolbarIconTexts: {
                customIcon: "从草稿箱加载"
            },
            // 图标的title
            lang: {
                toolbar: {
                    customIcon: "从草稿箱加载"
                }
            },
            saveHTMLToTextarea : true, // 保存 HTML 到 Textarea
            toolbarAutoFixed:true,//工具栏自动固定定位的开启与禁用
            imageUpload : true,
            imageFormats : ["jpg", "jpeg", "gif", "png", "bmp", "webp","pdf","doc"],
            imageUploadURL : "/file/uploadImage",
            onload : function() {
                initPasteDragImg(this); //截图上传
                editormd.loadPlugin("/editormd/plugins/code-auto-save/code-auto-save", function() {
                    // 初始化插件 实现监听
                    editor.CodeAutoSave();
                    //读取缓存内容
                    editor.CodeAutoSaveGetCache();
                });
            }
        });

        //自定义验证规则
        form.verify({
            title: function(value){
                if(value.length < 5){
                    return '标题至少得5个字符啊';
                }
            },
            blogContent: function(value){
                if(value.length < 0){
                    return '请输入内容';
                }
            },
            mustcheck: function (value, item) { //复选框必选
                var xname = $(item).attr("id")
                var va = $(item).find("input[type='checkbox']:checked").val();
                if (typeof (va) == "undefined") {
                    return $(item).attr("lay-verify-msg");
                }
            }
        });

        //监听提交
        form.on('submit(blog)', function(data){
            var htmlContent = editor.getMarkdown(); //获取编辑器源码内容
            var tagIds = [];
            $('input[type=checkbox]:checked').each(function() {
                tagIds.push($(this).val());
            });
            var params = {
                'title': $('input[name="title"]').val(),
                'typeId': $('#js-blog-typeId input[name="typeId"]:checked ').val(),
                'tagIds': tagIds,
                'coverPhoto':  $('input[name="coverPhoto"]').val(),
                'content': htmlContent
            };
            $.ajax({
                type: 'POST',
                beforeSend: function() {
                    layer.load(2);
                },
                url: '/blog/addOrUpdateBlog',
                data: JSON.stringify(params),
                dataType: 'json',
                contentType: 'application/json; charset=UTF-8',// 解决415错误
                success: function (res) {
                    if(res.code == '200') {
                        // 删除缓存
                        editor.CodeAutoSaveDelCache();
                        layer.closeAll("loading");
                        //跳转页面
                        location.href = '/admin/blogInfo.html';
                    }
                },
                error: function() {
                    layer.closeAll("loading");
                }
            });
            return false;
        });

        //上传封面照片
        upload.render({
            elem: '.coverPhoto',
            before: function(obj){ //obj参数包含的信息，跟 choose回调完全一致，可参见上文。
                layer.load(); //上传loading
             },
            size: 1024*2, //10M
            field: 'editormd-image-file', //文件域名
            done: function(res, index, upload){
                //执行上传请求后的回调。返回三个参数，分别为：res（服务端响应信息）、index（当前文件的索引）、upload（重新上传的方法，一般在文件上传失败后使用）
                if(res.success == 1) {
                    var imageUrl= res.url;
                    $('#blog-coverPhoto').attr('src',imageUrl);
                    $('input[name="coverPhoto"]').val(imageUrl);
                    $('#blog-coverPhoto').show();
                }
                layer.closeAll('loading'); //关闭loading
            },
            error: function(index, upload){
                layer.closeAll('loading'); //关闭loading
            }
        })

        form.render(); //渲染页面

    });
